<?php  if (!defined('BASEPATH')) exit('No direct script access allowed');

require_once APPPATH . 'controllers/admin.php';

/**
 * Контроллер изменения основных стилей
 *
 * @package CoreFramework
 * @version 1.0
 * @author Gennadiy Kozlenko
 */
class Admin_Edit_Styles extends Admin {
   
   /**
    * Массив стилей, исключаемых из редактирования
    *
    * @access private
    * @var array
    */
   var $_excludes = array('admin');
   
   /**
    * Конструктор класса
    *
    * @access public
    * @return Admin_Edit_Styles
    */
   function Admin_Edit_Styles() {
      parent::Admin();
      $this->set_menu(2, 5);
   } // end Admin_Edit_Styles
   
   /**
    * Метод по умолчанию
    *
    * @access public
    */
   function index() {
      $data = array();
      $this->load->helper('file');
      // Получаем список стилей
      $styles = array();
      foreach (get_filenames(BASEPATH . '../styles/') as $file) {
         $name = preg_replace('~\.css$~', '', $file);
         if (!in_array($name, $this->_excludes)) {
            $styles[$name] = str_replace('{%style%}', ucfirst($name), $this->lang->line('style_item'));
         }
      }
      if (false !== $this->input->post('style')) {
         $style = basename(trim($this->input->post('style')));
      } elseif (false !== $this->input->get('style')) {
         $style = basename(trim($this->input->get('style')));
      } else {
         $style = current(array_keys($styles));
      }
      $content = '';
      if (false !== $this->input->post('edit')) {
         
         $content = $this->input->post('content');
         // Сохраняем стиль
         if (write_file(BASEPATH . '../styles/' . $style . '.css', $content)) {
            $this->set_message($this->lang->line('edit_style_succ'), 'info', true);
            $this->redirect($this->get_controller(), 'index', array('style' => $style));
         }
         $this->set_message($this->lang->line('edit_style_error'), 'error');
      } else {
         $content = read_file(BASEPATH . '../styles/' . $style . '.css');
      }
      // Забиваем в дату поля
      $this->load->helper('element');
      $data['styles'] = create_select('style', $styles, $style, 'class="i" onchange="this.form.submit()"');
      // Защищаем специальные теги
      $content = str_replace(array('{%', '%}'), array('{-%', '%-}'), $content);
      $data['content'] = htmlspecialchars($content);
      // Выводим
      $this->set_content($this->parser->parse('admin/edit_styles.html', $data, true));
      $this->display();
   } // end index
   
}
